package co.baiku.boot.v3.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;

/**
 * 服务时间段
 * <p>
 * 服务时间范围
 * </p>
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class WeixinPayScoreTimeRange implements Serializable {
    /**
     * [必填] 服务开始时间
     * <p>
     * 用户端展示用途。<br/>
     * 用户下单时确认的服务开始时间（比如用户今天下单，明天开始接受服务，这里指的是明天的服务开始时间）。<br/>
     * 支持三种格式：yyyyMMddHHmmss、yyyyMMdd和 OnAccept<br/>
     * ● 传入20091225091010表示2009年12月25日9点10分10秒。<br/>
     * ● 传入20091225默认认为时间为2009年12月25日<br/>
     * ● 传入OnAccept表示用户确认订单成功时间为【服务开始时间】。<br/>
     * 根据传入时间精准度进行校验<br/>
     * 1）若传入时间精准到秒，则校验精准到秒：【服务开始时间】>【商户调用创建订单接口时间<br/>
     * 2）若传入时间精准到日，则校验精准到日：【服务开始时间】>=【商户调用创建订单接口时间】<br/>
     * 示例值：20091225091010
     * </p>
     */
    @JsonProperty("start_time")
    private String startTime;
    /**
     * 服务开始时间备注
     * <p>
     * 服务开始时间备注说明，服务开始时间有填时，可填写服务开始时间备注，不超过20个字符，超出报错处理。<br/>
     * 示例值：开始租借日期
     * </p>
     */
    @JsonProperty("start_time_remark")
    private String startTimeRemark;

    /**
     * [选填] 预计服务结束时间
     * <p>
     * 用户端展示用途，支持两种格式：yyyyMMddHHmmss和yyyyMMdd<br/>
     * ● 传入20091225091010表示2009年12月25日9点10分10秒。<br/>
     * ● 传入20091225默认认为时间为2009年12月25日<br/>
     * 根据传入时间精准度进行校验<br/>
     * 1、若传入时间精准到秒，则校验精准到秒：<br/>
     * 1）【预计服务结束时间】>【服务开始时间】<br/>
     * 2）【预计服务结束时间】>【商户调用接口时间+1分钟】<br/>
     * 2、若传入时间精准到日，则校验精准到日：<br/>
     * 1）【预计服务结束时间】>=【服务开始时间】<br/>
     * 2）【预计服务结束时间】>=【商户调用接口时间】<br/>
     * 【建议】<br/>
     * 1、用户下单时【未确定】服务结束时间，不填写。<br/>
     * 2、用户下单时【已确定】服务结束时间，填写。<br/>
     * 示例值：20091225121010
     * </p>
     */
    @JsonProperty("end_time")
    private String endTime;
    /**
     * 预计服务结束时间备注
     * <p>
     * 预计服务结束时间备注说明，预计服务结束时间有填时，可填写预计服务结束时间备注，不超过20个字符，超出报错处理。<br/>
     * 示例值：结束租借时间
     * </p>
     */
    @JsonProperty("end_time_remark")
    private String endTimeRemark;

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getStartTimeRemark() {
        return startTimeRemark;
    }

    public void setStartTimeRemark(String startTimeRemark) {
        this.startTimeRemark = startTimeRemark;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getEndTimeRemark() {
        return endTimeRemark;
    }

    public void setEndTimeRemark(String endTimeRemark) {
        this.endTimeRemark = endTimeRemark;
    }
}
